<?php
require_once("controller/GeneralController.php");
require_once("model/BdAccess.php");
require_once("model/FormSeance.php");
require_once("model/FormAjSeance.php");
require_once("model/FormEditerSeance.php");


/**
 * Classe du controleur home
 */
class seanceController extends GeneralController{

    /**
     * Initialisation du site
     */
    function __construct() {
        parent::__construct(); 
    }

    /**
     * Recupere les parametres (de l'url ou d'un formulaire) de mani�re globale
     * Pour toutes les actions de ce contr�leur
     */
    protected function getParam() {
        // Recup�re d'�ventuels parametres (POST ou GET)

        if (isset($_GET["id"]) && $_GET["id"] != "") {
            $this->data["idSeance"] = $_GET["id"];
        } else {
            $this->data["idSeance"] = 0;
        }
        
        $this->data["formFilter"] = FormSeance::bind();
        $this->data["user"] = $_SESSION["utilisateur"];

        // utiliser $_POST pour acceder aux parametres POST
    }


    //////////////////////////// LISTE DES ACTIONS DE CE CONTROLEUR/////////////////////////

    /**
     * Action page index(par d�faut)
     */
    function index() {
        $this->getParam();
        $this->data["bda"] = new BdAccess();
        $this->data["listEP"] = $this->data["bda"]->getListEp($this->data["user"]["NumUtilisateur"]);
        $this->data["listSeance"] = $this->data["bda"]->getListSeances($this->data["user"]["NumUtilisateur"], $this->data["formFilter"]->getDateDeb(), $this->data["formFilter"]->getDateFin(), $this->data["formFilter"]->getnumEP(), $this->data["formFilter"]->getnumGroupe());
        $this->data["content"] = "viewSeance.php"; // on indique le nom du fichier de la vue � afficher			
        $this->data["listGroupes"] =  $this->data["bda"]->getGroupesByEP($this->data["formFilter"]->getnumEP());
        // Selectionne et charge la vue
        afficherView("seance", $this->data , true);
    }

    function editerSeance() {
        $this->data["title"]="Editer séances";
        
        $this->getParam();
        $this->data["bda"] = new BdAccess();
        $this->data["formFilter"] = FormSeance::bind();
        
        $this->data["seanceTd"] = $this->data["bda"]->getSeanceById($this->data["idSeance"]);
        $this->data["grp"]=$this->data["bda"]->getGroupesById($this->data["seanceTd"]["idgrp"]);
        
        $this->data["listSeance"] = $this->data["bda"]->getListSeances($this->data["user"]["NumUtilisateur"], $this->data["formFilter"]->getDateDeb(), $this->data["formFilter"]->getDateFin(), $this->data["formFilter"]->getnumEP(), $this->data["formFilter"]->getnumGroupe());
        $this->data["listEP"] = $this->data["bda"]->getListEp($this->data["user"]["NumUtilisateur"]);
        if(!(isset($this->data["form"]) && $this->data["form"])){
            $this->data["form"] = new FormEditerSeance($this->data["seanceTd"]["idSeance"], $this->data["seanceTd"]["Numero"], $this->data["seanceTd"]["libelleSeance"], $this->data["seanceTd"]["dateSeance"], $this->data["seanceTd"]["numEP"], null, null);
        }
        $this->data["listGroupes"] =  $this->data["bda"]->getGroupesByEP($this->data["form"]->getNumEp());
        $this->data["listEtudiant"] = $this->data["bda"]->getListEtudiantsSeance($this->data["user"]["NumUtilisateur"], null, null, $this->data["seanceTd"]["numEP"], null, $this->data["seanceTd"]["idgrp"], afficherAnneeScolaire($this->data["seanceTd"]["dateSeance"]), $this->data["seanceTd"]["idSeance"]);
        // Selectionne et charge la vue
        afficherView("editerSeance", $this->data , true);
    }

    function updateSeance() {
        $this->getParam();
        $this->data["bda"] = new BdAccess();
        $this->data["form"] = FormEditerSeance::bind();
        if(!$this->data["form"]->isValid()){
            $this->data["msgErreur"]="Un champs obligatoire n'a pas été saisie";
            $this->editerSeance();
        }else{
            $this->data["form"]->save($this->data["bda"]);
            header("Location: index.php?controller=seance&action=editerSeance&id=".$this->data["form"]->getIdSeance());

        }
    }

    function ajouterSeance() {
        $this->data["menuSelected"]="Ajouter séances";
        $this->data["title"]="Ajouter séances";
        $this->data["bda"] = new BdAccess();
        $this->data["user"] = $_SESSION["utilisateur"];
        $this->data["listEP"] = $this->data["bda"]->getListEp($this->data["user"]["NumUtilisateur"]);
        if(!isset($this->data["form"])){$this->data["form"]=new FormAjSeance(null, null, null, null, null, null);
        if(!isset($this->data["listGroupes"])){$this->data["listGroupes"]=array();}
        }
        afficherView("ajouterSeance", $this->data , true);
    }

    function enregistrerSeance() {
        $this->getParam();
        $this->data["form"] = FormAjSeance::bind();
        $this->data["bda"] = new BdAccess();
        $this->data["listGroupes"] = $this->data["bda"]->getGroupesByEP($this->data["form"]->getNumEP());
        if($this->data["form"]->isValid()){
            $this->data["form"]->save($this->data["bda"], $this->data["user"]);
            header("Location: index.php?controller=seance&action=index");
        }else{
            $this->data["msgErreur"]="Un champs obligatoire n'a pas été saisie";
            $this->ajouterSeance();
        }
        //$this->index();

    }

    function deleteSeance() {
        $this->data["bda"] = new BdAccess();
        $this->data["bda"]->deleteSeance($_GET["id"]);
        header("Location: index.php?controller=seance&action=index");
        //$this->index();
    }
    
    function ajaxGetGroupes(){
        
        $numEp=$_GET["numEp"];
        $this->data["bda"] = new BdAccess();
        $this->data["listGroupes"] =$this->data["bda"]->getGroupesByEP($numEp);
        afficherView("ajaxGetGroupes", $this->data , false);
        
    }

}

?>